﻿// Wormholes POJ - 3259  算法训练营.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>


/*
https://vjudge.net/problem/POJ-3259

农夫约翰在探索他的许多农场时发现了许多神奇的虫洞。虫洞非常特殊，因为它是一条单向路径，可以让你在进入虫洞之前就到达目的地！
FJ的每个农场包括 N (1 ≤ N ≤ 500) 个方便编号为 1..N 的田地，M (1 ≤ M ≤ 2500) 条路径和 W (1 ≤ W ≤ 200) 个虫洞。

由于FJ是一个狂热的时间旅行迷，他想要做以下事情：从某个田地出发，穿越一些路径和虫洞，然后在他最初出发之前返回到起点。也许他能够遇见自己 :)。

为了帮助FJ找出这是否可能，他将为你提供他的 F (1 ≤ F ≤ 5) 个农场的完整地图。没有路径需要旅行超过 10,000 秒，也没有虫洞能够让FJ提前超过 10,000 秒回到过去。

输入
第 1 行: 一个整数，F。接下来是 F 个农场的描述。
每个农场的第 1 行: 三个用空格分隔的整数，分别是: N, M, 和 W
每个农场的第 2..M+1 行: 三个用空格分隔的数字 (S, E, T)，分别描述了一个 T 秒内穿越需要的 S 和 E 之间的双向路径。两个田地可能被多条路径连接。
每个农场的第 M+2..M+W+1 行: 三个用空格分隔的数字 (S, E, T)，分别描述了一个从 S 到 E 的单向路径，同时让旅行者提前 T 秒回到过去。
输出
第 1..F 行: 对于每个农场，如果FJ可以实现他的目标，则输出 "YES"，否则输出 "NO" (不包括引号)

2
3 3 1
1 2 2
1 3 4
2 3 1
3 1 3
3 2 1
1 2 3
2 3 4
3 1 8

NO
YES

提示
对于农场 1，FJ 无法回到过去。
对于农场 2，FJ 可以通过循环 1->2->3->1 回到过去，在离开之前 1 秒到达他的起点。他可以从循环上的任何地方开始来实现这一目标。
*/
int main()
{
    std::cout << "Hello World!\n";
}
